/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.tesoreria.be;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.general.be.PersonaNatural;

/**
 *
 * @author Administrador
 */
@Entity
@Table(name = "tes_recepcionador_certificado")
//@NamedQueries({@NamedQuery(name = "RecepcionadorCertificado.findAll", query = "SELECT r FROM RecepcionadorCertificado r"), @NamedQuery(name = "RecepcionadorCertificado.findByFkSolCodigocol", query = "SELECT r FROM RecepcionadorCertificado r WHERE r.recepcionadorCertificadoPK.fkSolCodigocol = :fkSolCodigocol"), @NamedQuery(name = "RecepcionadorCertificado.findByFkSolCodigopna", query = "SELECT r FROM RecepcionadorCertificado r WHERE r.recepcionadorCertificadoPK.fkSolCodigopna = :fkSolCodigopna"), @NamedQuery(name = "RecepcionadorCertificado.findByRceVigente", query = "SELECT r FROM RecepcionadorCertificado r WHERE r.rceVigente = :rceVigente"), @NamedQuery(name = "RecepcionadorCertificado.findByRceFechregistro", query = "SELECT r FROM RecepcionadorCertificado r WHERE r.rceFechregistro = :rceFechregistro")})
public class RecepcionadorCertificado implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected RecepcionadorCertificadoPK recepcionadorCertificadoPK;
    @Basic(optional = false)
    @Column(name = "rce_vigente", nullable = false)
    private int rceVigente;
    @Basic(optional = false)
    @Column(name = "rce_fechregistro", nullable = false)
    @Temporal(TemporalType.DATE)
    private Date rceFechregistro;
    @JoinColumn(name = "fk_sol_codigocol", referencedColumnName = "col_codigo", nullable = false, insertable = false, updatable = false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Colegiado colegiado;
    @JoinColumn(name = "fk_sol_codigopna", referencedColumnName = "per_codigo", nullable = false, insertable = false, updatable = false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private PersonaNatural personaNatural;

    public RecepcionadorCertificado() {
    }

    public RecepcionadorCertificado(RecepcionadorCertificadoPK recepcionadorCertificadoPK) {
        this.recepcionadorCertificadoPK = recepcionadorCertificadoPK;
    }

    public RecepcionadorCertificado(RecepcionadorCertificadoPK recepcionadorCertificadoPK, int rceVigente, Date rceFechregistro) {
        this.recepcionadorCertificadoPK = recepcionadorCertificadoPK;
        this.rceVigente = rceVigente;
        this.rceFechregistro = rceFechregistro;
    }

    public RecepcionadorCertificado(long fkSolCodigocol, long fkSolCodigopna) {
        this.recepcionadorCertificadoPK = new RecepcionadorCertificadoPK(fkSolCodigocol, fkSolCodigopna);
    }

    public RecepcionadorCertificadoPK getRecepcionadorCertificadoPK() {
        return recepcionadorCertificadoPK;
    }

    public void setRecepcionadorCertificadoPK(RecepcionadorCertificadoPK recepcionadorCertificadoPK) {
        this.recepcionadorCertificadoPK = recepcionadorCertificadoPK;
    }

    public int getRceVigente() {
        return rceVigente;
    }

    public void setRceVigente(int rceVigente) {
        this.rceVigente = rceVigente;
    }

    public Date getRceFechregistro() {
        return rceFechregistro;
    }

    public void setRceFechregistro(Date rceFechregistro) {
        this.rceFechregistro = rceFechregistro;
    }

    public Colegiado getColegiado() {
        return colegiado;
    }

    public void setColegiado(Colegiado colegiado) {
        this.colegiado = colegiado;
    }

    public PersonaNatural getPersonaNatural() {
        return personaNatural;
    }

    public void setPersonaNatural(PersonaNatural personaNatural) {
        this.personaNatural = personaNatural;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (recepcionadorCertificadoPK != null ? recepcionadorCertificadoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof RecepcionadorCertificado)) {
            return false;
        }
        RecepcionadorCertificado other = (RecepcionadorCertificado) object;
        if ((this.recepcionadorCertificadoPK == null && other.recepcionadorCertificadoPK != null) || (this.recepcionadorCertificadoPK != null && !this.recepcionadorCertificadoPK.equals(other.recepcionadorCertificadoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.tesoreria.be.RecepcionadorCertificado[recepcionadorCertificadoPK=" + recepcionadorCertificadoPK + "]";
    }

}
